package com.eastfair.home.vo;

import com.eastfair.annotation.annotation.vo.VoInfo;
import com.eastfair.annotation.model.BaseVoGroupClass;
import com.eastfair.venueservice.enumeration.ReportVenueDrawingCategoryAuditAuditStatusEnum;
import com.eastfair.vo.BaseVO;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Size;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 一键报馆图纸分类 VO.
 *
 * @author dqq
 * @date 2022 /9/9
 */
@Data
public class ReportVenueDrawingCategoryVO extends BaseVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Long id;

    /**
     * 是否启用：1是；0否
     */
    @ApiModelProperty(value = "是否启用：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer isEnabled;
    /**
     * 是否删除：1是；0否
     */
    @ApiModelProperty(value = "是否删除：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer isDeleted;
    /**
     * 项目id
     */
    @ApiModelProperty(value = "项目id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long projectId;
    /**
     * 子系统id
     */
    @ApiModelProperty(value = "子系统id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long subsystemId;
    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long tenantId;
    /**
     * 一键报馆编号
     */
    @ApiModelProperty(value = "一键报馆编号")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 64, message = "一键报馆编号长度不能超过64")
    private String reportVenueSpaceNumber;
    /**
     * 一键报馆ID
     */
    @ApiModelProperty(value = "一键报馆ID")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long reportVenueSpaceId;
    /**
     * 图片分类ID
     */
    @ApiModelProperty(value = "图片分类ID")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long drawingCategoryId;
    /**
     * 图片分类名称
     */
    @ApiModelProperty(value = "图片分类名称")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 100, message = "图片分类名称长度不能超过100")
    private String drawingCategoryName;
    /**
     * 图纸类型
     */
    @ApiModelProperty(value = "图纸类型")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 100, message = "图纸类型")
    private String drawingCategoryType;
    /**
     * 图片分类序号
     */
    @ApiModelProperty(value = "图片分类序号")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer drawingCategorySort;
    /**
     * 审核状态 #{SUBMIT:待审核;APPROVED:审核通过;NOT_APPROVED:审核未通过}
     */
    @ApiModelProperty(value = "审核状态 #{SUBMIT:待审核;APPROVED:审核通过;NOT_APPROVED:审核未通过}")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private ReportVenueDrawingCategoryAuditAuditStatusEnum auditStatus;
    /**
     * 审核意见
     */
    @ApiModelProperty(value = "审核意见")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 200, message = "审核意见长度不能超过200")
    private String auditOpinion;
    /**
     * 提交时间
     */
    @ApiModelProperty(value = "提交时间")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private LocalDateTime reportTime;
    /**
     * 审核时间
     */
    @ApiModelProperty(value = "审核时间")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private LocalDateTime auditTime;
    /**
     * 审核人id
     */
    @ApiModelProperty(value = "审核人id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long auditUserId;
    /**
     * 审核人姓名
     */
    @ApiModelProperty(value = "审核人姓名")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 100, message = "审核人姓名长度不能超过100")
    private String auditUserName;
}